package com.solution.admin.message.service;

import java.util.List;
import java.util.Map;

import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

import com.solution.admin.message.entity.MessageEntity;
import com.solution.common.page.PageBean;
import com.solution.common.page.PageParam;

/**
 * 消息管理接口service接口层
 * 
 * @author xu_cc
 * @date 2017-11-22 15:18:58
 */
public interface MessageService {
	
	/**
	 * 发送订单消息给个人
	 * 
	 * @param orderCode
	 *            订单编码
	 * @param orderStatus
	 *            订单状态
	 * @return long
	 * @author xu_cc
	 * @throws Exception
	 *             exception
	 * @Date 创建时间：2017年11月27日 上午10:57:10
	 */
	public long doSendOrderToUser(String orderCode, String orderStatus);

	/**
	 * 标识消息已读
	 * 
	 * @param param
	 * @return int
	 * @author xu_cc
	 * @throws Exception
	 *             exception
	 * @Date 创建时间：2017年11月24日 下午3:29:40
	 */
	public int doReadMessage(Long messageId, Long userId);
	/**
	 * 微信端获取用户所有信息
	 * 
	 * @param param
	 * @return List<MessageEntity>
	 * @author xu_cc
	 * @throws Exception
	 *             exception
	 * @Date 创建时间：2017年11月24日 下午3:05:14
	 */
	public List<MessageEntity> getWxMessageList(Integer messageType, Long userId, int LimitCount);

	/**
	 * 保存消息管理
	 * 
	 * @param messageEntity
	 *            消息管理实体
	 * @return Long 返回插入消息管理记录ID
	 * @author xu_cc
	 * @date 2017-11-22 15:18:58
	 */
	public long saveMessage(MessageEntity messageEntity);

	/**
	 * 删除消息管理
	 * 
	 * @param
	 * @return int 返回删除记录条数
	 * @author xu_cc
	 * @date 2017-11-22 15:18:58
	 */
	public int deleteMessageById(long id);

	/**
	 * 根据ID查询消息管理
	 * 
	 * @param id
	 *            消息管理id
	 * @return MessageEntity 消息管理对象
	 * @author xu_cc
	 * @date 2017-11-22 15:18:58
	 */
	public MessageEntity getMessageById(Long id);
	
	/**
	 * 查询最新的一条系统消息
	 * @param receiveType 消息类型
	 * @return
	 */
	public MessageEntity getLastMessage(String receiveType);

	/**
	 * 更新消息管理
	 * 
	 * @param MessageEntity
	 *            消息管理对象
	 * @return int 更新是否成功，>1代表更新成功
	 * @author xu_cc
	 * @date 2017-11-22 15:18:58
	 */
	public int updateMessage(MessageEntity messageEntity);

	/**
	 * 分页查询消息管理
	 * 
	 * @param pageParam
	 *            分页参数
	 * @param paramMap
	 *            查询参数
	 * @return PageBean 分页参数和分页数据
	 * @author xu_cc
	 * @date 2017-11-22 15:18:58
	 */
	public PageBean listMessagePage(PageParam pageParam, Map<String, Object> paramMap);

	/**
	 * 根据条件查询消息管理
	 * 
	 * @param param
	 * @return 消息管理列表
	 * @author xu_cc
	 * @date 2017-11-22 15:18:58
	 */
	public List<MessageEntity> listMessage(Map<String, Object> param);

}
